home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr57
/
nwnt.zip
/
NWNT.EXE
/
OEMSETUP.INF
< prev
next >
Wrap
INI File
|
1993-04-23
|
53KB
|
1,741 lines
;***********************************************************************
;
; OEMNPRNW.INF
;
; Novell Netware base installation INF
;
;***********************************************************************
;-----------------------------------------------------------------------
; OPTION TYPE
; -----------
; This identifies the Option type we are dealing with. The different
; possible types are:
;
; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
;
; Types specific to networking:
;
; NetAdapter, a netcard / adapter combination or just a netcard
; NetDriver, just a netcard driver
; NetTransport, a complete NDIS-compliant TDI transport stack
; NetService, an NT networking service
; NetWork, a complete network ensemble.
; NetProvider a complete network which supports NT MPR protocol
;-----------------------------------------------------------------------
[Identification]
OptionType = NetProvider
;-----------------------------------------------------------------------
; OPTION LIST
; -----------
; This section lists the OEM Option key names. These keys are locale
; independent and used to represent the option in a locale independent
; manner.
;
;-----------------------------------------------------------------------
[Options]
NETWARE
;-----------------------------------------------------------------------
; LANGUAGES SUPPORTED
; -------------------
;
; The languages supported by the OEM INF, For every language supported
; we need to have a separate text section for every displayable text
; section.
;
;-----------------------------------------------------------------------
[LanguagesSupported]
ENG
;-----------------------------------------------------------------------
; OPTION TEXT SECTION
; -------------------
; These are text strings used to identify the option to the user. There
; are separate sections for each language supported. The format of the
; section name is "OptionsText" concatenated with the Language represented
; by the section.
;
;-----------------------------------------------------------------------
[OptionsTextENG]
NETWARE = "NetWare Services for Windows NT"
;***********************************************************************
; Language-Dependent Dialog Constants
;***********************************************************************
[FileConstantsENG]
;
; Variables to support thermometer gauge and error dialogs
;
ProCaption = "Windows NT Setup"
ProCancel = "Cancel"
ProCancelMsg = "Windows NT Networking is not correctly installed. "+
"Are you sure you want to cancel copying files?"
ProCancelCap = "Network Setup Message"
ProText1 = "Copying:"
ProText2 = "To:"
;
; Product Info
;
FunctionTitle = "NetWare Services Setup"
;
; Used by GetInfFileNameFromRegistry
;
[InitBaseVars]
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
KeyInfo = {}
RegistryErrorIndex = NO_ERROR
NoTitle = 0
CurrentControlSet = "SYSTEM\CurrentControlSet"
ServicesBaseName = $(CurrentControlSet)"\Services"
NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
;
;
;
[DialogConstantsENG]
;
; Common button names, etc.
;
Help = "&Help"
Exit = "Cancel"
OK = "OK"
HelpContext = ""
Continue = "Continue"
Cancel = "Cancel"
;-----------------------------------------------
; Input DIALOGS
;-----------------------------------------------
[FileDependentDlgENG]
;
; No UI yet for NetWare Services
;
;***********************************************************************
; CONSTANTS FOR USING DIALOGS
;***********************************************************************
[FileConstants]
;
; File names, etc.
;
UtilityInf = "UTILITY.INF"
subroutineinf = "SUBROUTN.INF"
SoftwareType = "service"
Exit_Code = 0
;ShellCode = 0
; Product Info
;
Manufacturer = "Novell"
ProductMajorVersion = "0"
ProductMinorVersion = "9"
ProductVersion = $(ProductMajorVersion)"."$(ProductMinorVersion)
SoftwareBinHome = "%SystemRoot%\System32\Netware\"
DriverBinHome = "%SystemRoot%\System32\Drivers\"
;
; Services
;
; MUP: if not already installed
ProductMUPControl = service
ProductMUPName = "Mup"
ProductMUPDisplayName = "Mup"
ProductMUPTitle = "Mup"
ProductMUPImagePath = "\SystemRoot\System32\drivers\mup.sys"
ProductMUPSvcType = "transport"
ProductMUPGroup = "Network"
ProductMUPDependList = {}
ProductMUPEventFile = ""
; TDI: if not already installed
ProductTDIControl = service
ProductTDIName = "Tdi"
ProductTDIDisplayName = "Tdi"
ProductTDITitle = "Tdi"
ProductTDIImagePath = "\SystemRoot\System32\drivers\TDI.sys"
ProductTDISvcType = "kernelauto"
ProductTDIGroup = "Network"
ProductTDIDependList = {}
ProductTDIEventFile = ""
; NwFs: NetWare Workstation
ProductNWFSControl = component
ProductNWFSName = "NetWareWorkstation"
ProductNWFSDisplayName = "NetWare Workstation"
ProductNWFSTitle = "NetWare Workstation"
ProductNWFSImagePath = $(SoftwareBinHome)nwfs.sys
ProductNWFSDescription = "NetWare Workstation"
ProductNWFSSvcType = "systemauto"
ProductNWFSSoftType = "service"
ProductNWFSGroup = ""
ProductNWFSDependList = {"+TDI","Mup"}
ProductNWFSEventFile = ""
NetRuleNWFSSoftwareType = "nwfs nwFileSys"
NetRuleNWFSSoftwareUse = "service yes yes"
NetRuleNWFSSoftwareBindForm = """Nwfs"" yes yes container"
NetRuleNWFSSoftwareClass = {"nwFileSys basic"}
NetRuleNWFSSoftwareBindable = {"nwFileSys nwTransport non non 100"}
; IpxSpxII: Transport
ProductIPXSPXIIControl = component
ProductIPXSPXIIName = "IpxSpxII"
ProductIPXSPXIIDisplayName = "NetWare IPX/SPX II Transport"
ProductIPXSPXIITitle = "NetWare IPX/SPX II Transport"
ProductIPXSPXIIDescription = "NetWare IPX/SPX II Network Transport"
ProductIPXSPXIIImagePath = $(SoftwareBinHome)ipxspxii.sys
ProductIPXSPXIISvcType = "systemauto"
ProductIPXSPXIISoftType = "transport"
ProductIPXSPXIIGroup = "TDI"
ProductIPXSPXIIDependList = {"+ODI Drivers"}
ProductIPXSPXIIEventFile = ""
NetRuleIPXSPXIISoftwareType = "ipxspxii nwTransport"
NetRuleIPXSPXIISoftwareUse = "transport yes yes"
NetRuleIPXSPXIISoftwareBindForm = """IpxSpxII"" yes yes simple"
NetRuleIPXSPXIISoftwareClass = {"nwTransport basic"}
NetRuleIPXSPXIISoftwareBindable = {"nwTransport nwOdiLoader non non 100"}
; OdiLoad
ProductODILOADControl = component
ProductODILOADName = "OdiLoad"
ProductODILOADDisplayName = "NetWare ODI MAC Driver Loader"
ProductODILOADTitle = "NetWare ODI MAC Driver Loader"
ProductODILOADDescription = "NetWare ODI MAC Driver Controller"
ProductODILOADImagePath = $(SoftwareBinHome)odiload.sys
ProductODILOADSvcType = "kernelauto"
ProductODILOADSoftType = "driver"
ProductODILOADGroup = "ODI Drivers"
ProductODILOADDependList = {"+ODI"}
ProductODILOADEventFile = ""
NetRuleODILOADSoftwareType = "odiLoad nwOdiLoader"
NetRuleODILOADSoftwareUse = "driver yes yes"
NetRuleODILOADSoftwareBindForm = """Odiload"" yes yes simple"
NetRuleODILOADSoftwareClass = {"nwOdiLoader basic","nwAdapter basic"}
NetRuleODILOADSoftwareBindable = {"nwOdiLoader nwAdapter non exclusive 100"}
; Lsl
ProductLSLControl = service
ProductLSLName = "LSL"
ProductLSLDisplayName = "NetWare LSL"
ProductLSLTitle = "NetWare LSL"
ProductLSLImagePath = $(SoftwareBinHome)lsl.sys
ProductLSLSvcType = "kernelauto"
ProductLSLGroup = "ODI"
ProductLSLDependList = {"+NetWare Services"}
ProductLSLEventFile = ""
; Resource Manager
ProductRESMGRControl = service
ProductRESMGRName = "ResMgr"
ProductRESMGRDisplayName = "NetWare Resource Manager"
ProductRESMGRTitle = "NetWare Resource Manager"
ProductRESMGRImagePath = $(SoftwareBinHome)resmgr.sys
ProductRESMGRSvcType = "kernelauto"
ProductRESMGRGroup = "NetWare Services"
ProductRESMGRDependList = {}
ProductRESMGREventFile = "%SystemRoot%\System32\netware\ResMgr.sys"
; Provider
ProductProviderName = "NetWare Services"
ProductProviderImagePath = "%SystemRoot%\System32\netware.dll"
ProductProviderDevice = "\Device\NetWareWorkstation"
ProductProviderClass = 3
; Registry key names
ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion"
ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductNWFSName)"\Parameters"
ServiceNameList = ^(ServiceNames, 1)
ComponentNameList = ^(ComponentNames, 1)
ServiceAbandonNameList = ^(ServiceAbandonNames, 1)
ExtendedFunctionList = ^(ExtendedFunctionNames,1)
PreAlphaList = ^(PreAlphaNames, 1)
[ServiceNames]
SVC_1 = "NWFS"
SVC_2 = "IPXSPXII"
SVC_3 = "LSL"
SVC_4 = "RESMGR"
SVC_5 = "ODILOAD"
SVC_6 = "MUP"
SVC_7 = "TDI"
[ComponentNames]
SVC_1 = "NWFS"
SVC_2 = "IPXSPXII"
SVC_3 = "ODILOAD"
[ServiceAbandonNames]
SVC_1 = "LSL"
SVC_2 = "RESMGR"
[ExtendedFunctionNames]
EXFN_1 = "AuthenticationPackage"
EXFN_2 = "NetworkProvider"
EXFN_3 = "ServiceGroupOrder"
EXFN_4 = "NetwarePrintServices"
[PreAlphaNames]
PREAL_1 = "Nwfs"
PREAL_2 = "Ipx"
PREAL_3 = "LSL"
PREAL_4 = "OdiLoad"
PREAL_5 = "Resmgr"
[GeneralConstants]
;
; Program flow control variables.
;
from = ""
to = ""
;
; Return codes; Exit_Code is set to one of these
;
ExitCodeOk = 0
ExitCodeCancel = 1
ExitCodeFatal = 2
KeyNull = ""
MAXIMUM_ALLOWED = 33554432
RegistryErrorIndex = NO_ERROR
KeyProduct = ""
KeyParameters = ""
TRUE = 1
FALSE = 0
NoTitle = 0
ExitState = "Active"
OldVersionExisted = $(FALSE)
[ExtendedConstants]
SvcList = {"NetWare Services","ODI","ODI Drivers"}
PkgName = "nwv1_0"
ProviderName = "NetWareWorkstation"
NetwarePrintProviderName = "NetWare Print Services"
PrintProvider = "System\CurrentControlSet\Control\Print\Providers"
[IpxSpxIIConstants]
FrameTypeName = "FrameType"
FrameType = "ETHERNET_802.3"
CardTypeName = "CardName"
CardName = "NE2000"
CardInstance = "CardInstance"
CardInstanceNum = "1"
BindValueName = "bindings"
[date]
; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour,
; Minute, Second }
Now = {} ? $(!LIBHANDLE) GetSystemDate
[DetectSystemMemory]
SystemMemory = "" ? $(!LIBHANDLE) GetMemorySize
;---------------------------------------------------------------------------
; 1. Identify
;
; DESCRIPTION: To verify that this INF deals with the same type of options
; as we are choosing currently.
;
; INPUT: None
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL
; $($R1): Option Type (COMPUTER ...)
; $($R2): Diskette description
;---------------------------------------------------------------------------
[Identify]
;
;
read-syms Identification
set Status = STATUS_SUCCESSFUL
set Identifier = $(OptionType)
set Media = #("Source Media Descriptions", 1, 1)
Return $(Status) $(Identifier) $(Media)
;------------------------------------------------------------------------
; 2. ReturnOptions:
;
; DESCRIPTION: To return the option list supported by this INF and the
; localised text list representing the options.
;
;
; INPUT: $($0): Language used. ( ENG | FRN | ... )
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE
; STATUS_FAILED
;
; $($R1): Option List
; $($R2): Option Text List
;------------------------------------------------------------------------
[ReturnOptions]
;
;
set Status = STATUS_FAILED
set OptionList = {}
set OptionTextList = {}
;
; Check if the language requested is supported
;
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) in $(LanguageList)
goto returnoptions
else
set Status = STATUS_NOLANGUAGE
goto finish_ReturnOptions
endif
;
; form a list of all the options and another of the text representing
;
returnoptions = +
set OptionList = ^(Options, 1)
set OptionTextList = ^(OptionsText$($0), 1)
set Status = STATUS_SUCCESSFUL
finish_ReturnOptions = +
Return $(Status) $(OptionList) $(OptionTextList)
;----------InstallOption-------------------------------------------------
;
; InstallOption:
;
; This section is shelled to by main installation processing
; or by NCPASHEL.INF during reconfig, removal, update, etc.
;
;
; FUNCTION: To copy files representing Options
; To configure the installed option
; To update the registry for the installed option
;
; INPUT: $($0): Language to use
; $($1): OptionID to install
; $($2): SourceDirectory
; $($3): AddCopy (YES | NO)
; $($4): DoCopy (YES | NO)
; $($5): DoConfig (YES | NO)
;
; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL |
; STATUS_NOLANGUAGE |
; STATUS_USERCANCEL |
; STATUS_FAILED
;
;------------------------------------------------------------------------
[InstallOption]
;
; extract parameters
;
set Option = $($1)
set SrcDir = $($2)
set AddCopy = $($3)
set DoCopy = $($4)
set DoConfig = $($5)
;
; For now,
;
;
; Check if the language requested is supported
;
set LanguageList = ^(LanguagesSupported, 1)
Ifcontains(i) $($0) NOT-IN $(LanguageList)
Return STATUS_NOLANGUAGE
endif
StartWait
; define all the constants
set-subst LF = "\n"
read-syms GeneralConstants
read-syms FileConstants
read-syms DialogConstants$(!STF_LANGUAGE)
ifstr(i) $(!NTN_Origination) == "NCPA"
set Continue = "OK"
endif
read-syms FileConstants$(!STF_LANGUAGE)
detect date
set-title $(FunctionTitle)
set to = Begin
set from = Begin
;
; Assume all is well.
;
set CommonStatus = STATUS_SUCCESSFUL
EndWait
;
; Set up the operation-mode-based variables and gaily welcome
; the user. If the "install mode" variable is improperly set,
; assume this is a new installation.
;
Begin = +
Debug-Output "OEMNPRNW.INF: Begin."
Set OEM_ABANDON_SERVICES = {}
Set OEM_ABANDON_COMPONENTS = {}
Ifstr(i) $(!NTN_InstallMode) == deinstall
Set OEM_ABANDON_SERVICES = $(ServiceAbandonNameList)
Set OEM_ABANDON_COMPONENTS = $(ComponentNameList)
set StartLabel = removenetware
else-Ifstr(i) $(!NTN_InstallMode) == update
set StartLabel = upgradenetware
else-Ifstr(i) $(!NTN_InstallMode) == bind
set StartLabel = bindnetware
else-Ifstr(i) $(!NTN_InstallMode) == configure
Set StartLabel = configurenetware
else
set StartLabel = installnetware
;
; Turn on all the options.
;
ForListDo $(ServiceNameList)
Set Do$($) = TRUE
EndForListDo
endif
set from = $(fatal)
set to = $(fatal)
goto $(StartLabel)
;-----------------------------------------------
; Installation Section
;-----------------------------------------------
installnetware = +
Debug-Output "OEMNPRNW.INF: Begin installation"
;
; First, check whether the same version of the software exists
;
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
;
; Same version already existed in the local machine
; Popup the dialog and ask the user whether he wants to continue
;
CloseRegKey $(KeyProduct)
Shell $(UtilityInf), VerExistedDlg, $(ProductNWFSTitle),+
$(ProductVersion)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNPRNW.INF: ShellCode error: cannot get an error string."
goto ShellCodeError
endif
goto end
endif
Ifstr(i) $(DoCopy) == "YES"
;
; Get source location
;
Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Goto ShellCodeError
Else-Ifstr(i) $($R0) == STATUS_FAILED
Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
Goto fatal
Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
Goto successful
Endif
Set SrcDir = $($R1)
Endif
;
; Install all the files now so we don't have to undo
; any Regsitry modification if copy fails
;
set DoCopyMup = 0
set FileToCheck = $(!STF_WINDOWSSYSPATH)"\drivers\mup.sys"
install "Install-CheckFileExists"
ifstr(i) $(STATUS) != "YES"
set DoCopyMup = 1
Endif
install "Install-Netware-Dir"
install "Install-Option"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
endif
set OEM_ABANDON_ON = TRUE
Debug-Output "Check for prealpha redirector."
set TempName = *($(PreAlphaList), 1)
Debug-Output "PreAlphaList[1] = "$(TempName)
set TempNamePath = $(!NTN_ServiceBase)"\"$(TempName)
Debug-Output "Path = "$(TempNamePath)
OpenRegKey $(!REG_H_LOCAL) "" $(TempNamePath) $(MAXIMUM_ALLOWED) KeyTemp
Ifstr(i) $(KeyTemp) != ""
Debug-Output "Found prealpha redirector."
CloseRegKey $(KeyTemp)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices
Ifstr(i) $(KeyServices) == ""
Debug-Output "Remove PreAlpha, can't open services key"
Else
ForListDo $(PreAlphaList)
DeleteRegTree $(KeyServices) $($)
EndForListDo
CloseRegKey $(KeyServices)
Endif
Endif
Debug-Output "OEMNPRNW.INF: Install services"
;
; Install all enabled services mentioned in the ServiceNameList
;
ForListDo $(ServiceNameList)
Set SvcOpt = $($)
; Check to see if the product to be installed is already installed
;
Set TempProductKeyName = $(!NTN_ServiceBase)"\"$(Product$(SvcOpt)Name)
OpenRegKey $(!REG_H_LOCAL) "" $(TempProductKeyName) $(MAXIMUM_ALLOWED) TempKey
ifint $(RegLastError) == $(!REG_ERROR_SUCCESS)
Debug-Output "OMENPRNW.INF: "$(SvcOpt)" is already installed"
CloseRegKey $(TempKey)
Set Do$(SvcOpt) = FALSE
Endif
Ifstr(i) $(Do$(SvcOpt)) == TRUE
Ifstr(i) $(Product$(SvcOpt)Control) == component
Debug-Output "OEMNPRNW.INF: install component: "$(SvcOpt)
Shell $(UtilityInf), AddSoftwareComponent +
$(Manufacturer), +
$(Product$(SvcOpt)Name), +
$(Product$(SvcOpt)Name), +
$(Product$(SvcOpt)DisplayName), +
$(STF_CONTEXTINFNAME), +
$(Product$(SvcOpt)ImagePath), +
$(Product$(SvcOpt)SvcType), +
$(Product$(SvcOpt)Group), +
$(Product$(SvcOpt)DependList), "" +
$(Product$(SvcOpt)EventFile), "", "", 1
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNPRNW.INF: AddSoftwareComponent ShellCode error "$($ShellCode)" installing "$(SvcOpt)
goto ShellCodeError
Endif
Set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
Debug-Output "OEMNPRNW.INF: Registry error "$(RegistryErrorIndex)" installing "$(SvcOpt)
goto fatalregistry
Endif
Set SvcVersion = $($R1)
Set SvcNetRules = $($R2)
Set SvcSvcKey = $($R3)
Set SvcParamKey = $($R4)
Set SvcLinkKey = $($R5)
Set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)SoftType)},+
{MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
{MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
{Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Title)},+
{Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Description)},+
{ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Name)},+
{InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
Shell $(UtilityInf), AddValueList, $(SvcVersion), $(NewValueList)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNSVWK.INF: ShellCode error: AddValueList for version info for "$(SvcOpt)
goto ShellCodeError
Endif
;
; Add the NetRules info
;
Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareType)},+
{class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareClass)}, +
{bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareBindable)}, +
{use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareUse)}, +
{bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareBindForm)}, +
{InfOption,$(NoTitle),$(!REG_VT_SZ),$(SvcOpt)}}
Shell $(UtilityInf), AddValueList, $(SvcNetRules), $(NewValueList)
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNPRMW.INF: AddValueList ShellCode error = "$($ShellCode)
Goto ShellCodeError
Endif
Set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
CloseRegKey $(SvcSvcKey)
CloseRegKey $(SvcParamKey)
CloseRegKey $(SvcLinkKey)
CloseRegKey $(SvcVersion)
CloseRegKey $(SvcNetRules)
Debug-Output "OEMNPRNW.INF: Registry error adding NetRules to "$(SvcOpt)
goto fatalregistry
Endif
Else
Debug-Output "OEMNPRNW.INF: install service: "$(SvcOpt)
Shell $(UtilityInf), CreateService, +
$(Product$(SvcOpt)Name), +
$(Product$(SvcOpt)DisplayName), +
$(Product$(SvcOpt)ImagePath), +
$(Product$(SvcOpt)SvcType), +
$(Product$(SvcOpt)Group), +
$(Product$(SvcOpt)DependList), "" +
$(Product$(SvcOpt)EventFile), "", "", 1
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNPRNW.INF: ShellCode error installing "$(SvcOpt)
goto ShellCodeError
Endif
Set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
EndWait
CloseRegKey $($R1)
CloseRegKey $($R2)
CloseRegKey $($R3)
Debug-Output "OEMNPRNW.INF: Registry error installing "$(SvcOpt)
goto fatalregistry
Endif
Set SvcVersion = ""
Set SvcNetRules = ""
Set SvcSvcKey = $($R1)
Set SvcParamKey = $($R2)
Set SvcLinkKey = $($R3)
Endif
;
; Call the service-specific installation section
;
Shell "" FinishInstalling-$(SvcOpt) +
$(SvcSvcKey) $(SvcParamKey) $(SvcLinkKey) +
$(SvcVersion) $(SvcNetRules)
Ifstr(i) $(SvcVersion) != ""
CloseRegKey $(SvcVersion)
Endif
Ifstr(i) $(SvcNetRules) != ""
CloseRegKey $(SvcNetRules)
Endif
CloseRegKey $(SvcSvcKey)
CloseRegKey $(SvcParamKey)
CloseRegKey $(SvcLinkKey)
;
; Add this service to the list of "undoable" things in case of failure
;
Set OEM_ABANDON_SERVICES = >($(OEM_ABANDON_SERVICES), $(Product$(SvcOpt)Name))
Endif
EndForListDo
addextendedfunctions = +
Debug-Output "OEMNPRNW.INF: Install extended functions"
ForListDo $(ExtendedFunctionList)
Debug-Output "OEMNPRNW.INF: extended function: "$($)
Shell "" InstallEx-$($)
EndForListDo
EndWait
goto successful
;-----------------------------------------------
; Configure Browser section
;-----------------------------------------------
configurenetware = +
Debug-Output "OEMNPRNW.INF: Configure netware"
set CommonStatus = STATUS_USERCANCEL
goto successful
;-----------------------------------------------
; Binding section
;-----------------------------------------------
bindnetware =+
Debug-Output "OEMNPRNW.INF: Bind netware"
set Error = "Binding: Sorry, not yet implemented."
goto fatal
;-----------------------------------------------
; Removenetware section
;-----------------------------------------------
removenetware = +
Debug-Output "OEMNPRNW.INF: Remove netware"
StartWait
;
; Remove all components mentioned in OEM_ABANDON_COMPONENTS
;
ForListDo $(OEM_ABANDON_COMPONENTS)
Set Component = $($)
;
; Do any component-specific cleanup before removing it
;
Shell "" FinishRemoving-$(Component)
Debug-Output "FinishRemoving-"$(Component)
Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
$(Product$(Component)Name)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNPRNW.INF: ShellCode error removing: "$(Component)
goto ShellCodeError
endif
set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "OEMNPRNW.INF: failure removing: "$(Component)", error "$(RegistryErrorIndex)
goto fatalregistry
Endif
; Changed to following line to the EndForListDo TWM
; Endif
EndForListDo
;
; Remove all services mentioned in OEM_ABANDON_SERVICES
;
ForListDo $(OEM_ABANDON_SERVICES)
Set SvcOpt = $($)
;
; Do any service-specific cleanup before deleting the service
;
Shell "" FinishRemoving-$(SvcOpt)
Shell $(UtilityInf), RemoveService, $(Product$(SvcOpt)Name), "YES"
Ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "OEMNPRNW.INF: ShellCode error removing: "$(Component)
goto ShellCodeError
Endif
Set RegistryErrorIndex = $($R0)
Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
Debug-Output "OEMNPRNW.INF: failure removing: "$(Component)", error "$(RegistryErrorIndex)
goto fatalregistry
Endif
EndForListDo
ForListDo $(ExtendedFunctionList)
Debug-Output "OEMNPRNW.INF: removing extended function: "$($)
Shell "" RemoveEx-$($)
EndForListDo
EndWait
goto end
;-----------------------------------------------
; Upgrade Software section
;-----------------------------------------------
upgradenetware = +
Debug-Output "OEMNPRNW.INF: Upgrade netware"
;
; First determine whether we want to do upgrade or update for software
; or hardware component. Then we will determine whether the Mode is
; update or upgrade.
;
; If the same version of the product existed in the registry, we do
; update. Otherwise, we will do a upgrade
;
ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
; Upgrade software component
;
; see whether the same version exist or not
;
OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
Ifstr $(KeyProduct) != $(KeyNull)
GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
set Version = *($(VersionInfo), 4)
;
; Update the binaries
;
Shell "", GetInfFileNameFromRegistry, $(KeyProduct)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
Debug-Output "ShellCode error"
set TWM_ShellErrorTitle = "GetInfFileNameFromRegistry"
goto ShellCodeError
endif
set !UG_Filename = $($R0)
ifstr(i) $(!UG_Filename) != ""
install "Install-Update"
ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
goto fatal
endif
endif
; Upgrade the version number
;
SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
;
; do nothing for update
;
ifint $(Version) != $(ProductVersion)
;
; If the major version number is not the same,
; it is major upgrade. So let Upgrade the product
;
;
; make other upgrade change if necessary
;
endif
CloseRegKey $(KeyProduct)
else
;
; Cannot Open software key, goto ERROR
;
goto fatalregistry
endif
endif
goto end
;
; End of Upgrade Software
;
;
; Escape hatches
;
successful = +
goto end
;
; warning display
;
warning = +
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(to)
else-ifstr(i) $($R1) == "CANCEL"
goto $(from)
else
; Debug-Msg "Error Error Bad DLGEVENT"
goto end
endif
;
; non fatal error display
;
nonfatalinfo = +
Set CommonStatus = STATUS_USERCANCEL
Set Severity = STATUS
goto nonfatalmsg
nonfatal = +
Set Severity = NONFATAL
goto nonfatalmsg
nonfatalmsg = +
ifstr(i) $(Error) == ""
Set Severity = NONFATAL
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
ifstr(i) $($R1) == "OK"
goto $(from)
else
goto "end"
endif
;
; Registry is broken
;
fatalregistry = +
Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
goto fatal
;
; fatal error display
;
fatal = +
ifstr(i) $(Error) == ""
Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
set Error = $($R0)
endif
Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
ifint $($ShellCode) != $(!SHELL_CODE_OK)
goto ShellCodeError
endif
goto setfailed
;
; Shelling error
;
ShellCodeError = +
set DlgType = "MessageBox"
set STF_MB_TITLE = "Error: "$(FunctionTitle)
set STF_MB_TEXT = "Shell Code Error "$(TWM_ShellErrorTitle)
set STF_MB_TYPE = 1
set STF_MB_ICON = 3
set STF_MB_DEF = 1
ui start "Error Message"
goto setfailed
setfailed = +
set CommonStatus = STATUS_FAILED
;
; If OEM_ABANDON_ON, we need to clean up the registry
;
ifstr(i) $(OEM_ABANDON_ON) == TRUE
set OEM_ABANDON_ON = FALSE
goto removenetware
endif
goto end
end = +
goto term
term = +
Return $(CommonStatus)
;
; Subroutines
;
;*************************************************************************
;
; SECTION: GetInfFileNameFromRegistry
;
; PURPOSE: get the inf file name from the product' NetRules section.
;
; ARGUMENTS: $0 product key handle
; (ie, system\software\Microsoft\Lance\CurrentVersion)
;
; RETURNS: $R0 Inf file name.
;
; REFERENCES: Nothing
;
; MODIFIES: Nothing
;
;
;*************************************************************************
[GetInfFileNameFromRegistry]
read-syms InitBaseVars
set KeyProduct = $($0)
set InfName = ""
OpenRegKey $(KeyProduct) "" "NetRules" $(!REG_KEY_READ) NetRuleKey
Ifstr(i) $(NetRuleKey) != $(KeyNull)
GetRegValue $(NetRuleKey) "InfName" NetRuleInfNameList
set NetRuleInfName = *($(NetRuleInfNameList), 4)
Split-String $(NetRuleInfName), "\", FilenameList
QueryListSize ListSize $(FilenameList)
set InfName = *($(FilenameList), $(ListSize))
CloseRegKey $(KeyProduct)
endif
return $(InfName)
;
; Helper sections: service-specific installation and removal functions
;
[InstallEx-AuthenticationPackage]
Read-syms GeneralConstants
Read-syms ExtendedConstants
Set ValueName = "Authentication Packages"
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\Lsa" $(MAXIMUM_ALLOWED) KeyLsa
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant open LSA key for authentication package"
Goto IEX_Auth_Return
Endif
GetRegValue $(KeyLsa) $(ValueName) AuthValueList
Set AuthList = *($(AuthValueList),4)
Set DoIt = 1
ForListDo $(AuthList)
Ifstr(i) $($) == $(PkgName)
Set DoIt = 0
Endif
EndForListDo
Ifint $(DoIt) == 1
Set NewAuthList = >($(AuthList),$(PkgName))
SetRegValue $(KeyLsa) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewAuthList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant update LSA value for authentication package"
Endif
Endif
CloseRegKey $(KeyLsa)
IEX_Auth_Return = +
Return
[InstallEx-NetworkProvider]
Read-syms GeneralConstants
Read-syms ExtendedConstants
Set ValueName = "ProviderOrder"
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\NetworkProvider\order" $(MAXIMUM_ALLOWED) KeyPro
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant open NetworkProvder\order key"
Goto IEX_Prov_Return
Endif
GetRegValue $(KeyPro) $(ValueName) ProValueList
Set ProString = *($(ProValueList),4)
Split-string $(ProString) "," ProPieces
Debug-Output "OEMNRPNW.INF: Provider list string is: "$(ProPieces)
Set DoIt = 1
ForListDo $(ProPieces)
Ifstr(i) $($) != ","
Ifstr(i) $($) == $(ProviderName)
Set DoIt = 0
Debug-Output "OEMNRPNW.INF: Provider already present"
Endif
Endif
EndForListDo
Ifint $(DoIt) == 1
Set NewPieces = ""
Set NewPieces = >($(NewPieces),$(ProviderName))
; Ifstr(i) *($(ProPieces),1) != $(KeyNull)
Set NewPieces = >($(NewPieces),",")
; Endif
ForListDo $(ProPieces)
Set NewPieces = >($(NewPieces),$($))
EndForListDo
Debug-Output "OEMNRPNW.INF: New provider list string is: "$(NewPieces)
Set NewString = ""
ForListDo $(NewPieces)
Set NewString = $(NewString)$($)
EndForListDo
Debug-Output "OEMNRPNW.INF: New provider string is: "$(NewString)
SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(NewString)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant update ProviderOrder value"
Endif
Endif
CloseRegKey $(KeyPro)
IEX_Prov_Return = +
Return
[InstallEx-ServiceGroupOrder]
Read-syms GeneralConstants
Read-syms ExtendedConstants
Set ValueName = "List"
Set Predecessor = "file system"
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ServiceGroupOrder" $(MAXIMUM_ALLOWED) KeySgo
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant open ServiceGroupOrder key"
Goto IEX_Sgo_Return
Endif
GetRegValue $(KeySgo) $(ValueName) SgoValue
Set SgoList = *($(SgoValue),4)
Set DoIt = 1
Set Trigger = *($(SvcList),1)
Set NewList = {}
ForListDo $(SgoList)
Set Item = $($)
Ifstr(i) $(Item) == $(Trigger)
; We're already in the list
Set DoIt = 0
Endif
Set NewList = >($(NewList),$(Item))
Ifstr(i) $(Item) == $(Predecessor)
; Add all NetWare names to the list here
ForListDo $(SvcList)
Set NewList = >($(NewList),$($))
EndForListDo
Endif
EndForListDo
Ifint $(DoIt) == 1
SetRegValue $(KeySgo) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant update ServiceGroupOrder value"
Endif
Endif
CloseRegKey $(KeySgo)
IEX_Sgo_Return = +
Return
;
; Install the Netware print provider
;
[InstallEx-NetwarePrintServices]
Read-syms GeneralConstants
Read-syms ExtendedConstants
Set ValueName = "Name"
OpenRegKey $(!REG_H_LOCAL) "" $(PrintProvider) $(MAXIMUM_ALLOWED) KeyPrint
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant open "$(PrintProvider)" key"
Goto IEX_Nps_Return
Endif
CreateRegKey $(KeyPrint) {$(NetwarePrintProviderName),$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyProvider
Ifint $(RegLastError) != !(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: NetWare Print Services already install."
OpenRegKey $(KeyPrint) "" $(NetwarePrintProviderName) $(MAXIMUM_ALLOWED) KeyProvider
Endif
SetRegValue $(KeyProvider) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),"nwspool.dll"}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Can't update Netware Print Services value"
Endif
CloseRegKey $(KeyProvider)
IEX_Nps_Return = +
Return
[RemoveEx-NetwarePrintServices]
Read-syms GeneralConstants
Read-syms ExtendedConstants
OpenRegKey $(!REG_H_LOCAL) "" $(PrintProvider) $(MAXIMUM_ALLOWED) KeyPrint
DeleteRegTree $(KeyPrint) $(NetwarePrintProviderName)
FlushRegKey $(KeyPrint)
CloseRegKey $(KeyPrint)
REX_Nps_Return = +
Return
;
; Remove extended functions
;
[RemoveEx-AuthenticationPackage]
Read-syms GeneralConstants
Read-syms ExtendedConstants
Set ValueName = "Authentication Packages"
Debug-Output "OEMNRPNW.INF: RemoveEx-AuthenticationPackage"
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\Lsa" $(MAXIMUM_ALLOWED) KeyLsa
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant open LSA key for authentication package"
Goto REX_Auth_Return
Endif
GetRegValue $(KeyLsa) $(ValueName) AuthValueList
Set AuthList = *($(AuthValueList),4)
Set DoIt = 0
Set NewAuthList = {}
ForListDo $(AuthList)
Ifstr(i) $($) == $(PkgName)
Set DoIt = 1
Else
Set NewAuthList = >($(NewAuthList),$($))
Endif
EndForListDo
Ifint $(DoIt) == 1
SetRegValue $(KeyLsa) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewAuthList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant update LSA value for authentication package"
Endif
Endif
CloseRegKey $(KeyLsa)
REX_Auth_Return = +
Return
[RemoveEx-NetworkProvider]
Read-syms GeneralConstants
Read-syms ExtendedConstants
Set ValueName = "ProviderOrder"
Debug-Output "OEMNRPNW.INF: RemoveEx-NetworkProvider"
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\NetworkProvider\order" $(MAXIMUM_ALLOWED) KeyPro
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant open NetworkProvder\order key"
Goto REX_Prov_Return
Endif
GetRegValue $(KeyPro) $(ValueName) ProValueList
Set ProString = *($(ProValueList),4)
Split-string $(ProString) "," ProPieces
Debug-Output "OEMNRPNW.INF: Provider list string is: "$(ProPieces)
Set DoIt = 0
Set NewNames = {}
ForListDo $(ProPieces)
Ifstr(i) $($) != ","
Ifstr(i) $($) == $(ProviderName)
Set DoIt = 1
Else
Set NewNames = >($(NewNames),$($))
Endif
Endif
EndForListDo
Ifint $(DoIt) == 1
; Delimit strings with commas
Set NewPieces = {}
QueryListSize ElemCount $(NewNames)
ForListDo $(NewNames)
Set NewPieces = >($(NewPieces),$($))
Ifint $(ElemCount) > 1
Set NewPieces = >($(NewPieces),",")
Endif
Set-sub ElemCount = $(ElemCount),1
EndForListDo
Debug-Output "OEMNRPNW.INF: New provider list string is: "$(NewPieces)
Set NewString = ""
ForListDo $(NewPieces)
Set NewString = $(NewString)$($)
EndForListDo
Debug-Output "OEMNRPNW.INF: New provider string is: "$(NewString)
SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(NewString)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant update ProviderOrder value"
Endif
Endif
CloseRegKey $(KeyPro)
REX_Prov_Return = +
Return
[RemoveEx-ServiceGroupOrder]
Read-syms GeneralConstants
Read-syms ExtendedConstants
Set ValueName = "List"
Debug-Output "OEMNRPNW.INF: RemoveEx-ServiceGroupOrder"
OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\ServiceGroupOrder" $(MAXIMUM_ALLOWED) KeySgo
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant open ServiceGroupOrder key"
Goto REX_Sgo_Return
Endif
GetRegValue $(KeySgo) $(ValueName) SgoValue
Set SgoList = *($(SgoValue),4)
Set DoIt = 0
Set NewList = {}
ForListDo $(SgoList)
Set Item = $($)
IfContains(i) $(Item) in $(SvcList)
; We're already in the list
Set DoIt = 1
Else
Set NewList = >($(NewList),$(Item))
Endif
EndForListDo
Ifint $(DoIt) == 1
SetRegValue $(KeySgo) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewList)}
Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
Debug-Output "OEMNPRNW.INF: Cant update ServiceGroupOrder value"
Endif
Endif
CloseRegKey $(KeySgo)
REX_Sgo_Return = +
Return
;
; FinishInstalling-OPTION: each section is called with:
;
; $0: Service key handle
; $1: Parameters key handle
; $2: Linkage key handle
;
;
[FinishInstalling-NWFS]
set WorkStationHandle = $($0)
read-syms GeneralConstants
Set KeyLinkage = $($2)
; Check for the pre-alpha nwfs key if it exists delete it we are now using
; the key NetwareWorkStation
;
set NetwareFileSystem = "Nwfs"
set PreAlphaWorkstation = $(!NTN_ServiceBase)"\"$(NetwareFileSystem)
OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaWorkstation) $(MAXIMUM_ALLOWED) KeyWorkstation
Ifstr(i) $(KeyWorkstation) != ""
CloseRegKey $(KeyWorkstation)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices
Ifstr(i) $(KeyServices) == ""
Debug-Output "OEMNPRNW.INF: Delete Nwfs, Can't open "$(!NTN_ServiceBase)
Else
DeleteRegTree $(KeyServices) $(NetwareFileSystem)
CloseRegKey $(KeyServices)
Endif
Endif
SetRegValue $(KeyLinkage) {"OtherDependencies",$(NoTitle),$(!REG_VT_MULTI_SZ),{"Mup"}}
CreateRegKey $(WorkStationHandle) {"NetworkProvider",$(NoTitle),GenericClass} "" $(MAXIMUM_ALLOWED) "" ProviderHandle
Ifstr(i) $(ProviderHandle) == ""
Debug-Output "OEMNPRNW.INF: Can't create NetwareWorkstation\NetworkProvider"
OpenRegValue $(WorkStationHandle) "" "NetworkProvider" $(MAXIMUM_ALLOWED) ProviderHandle
Ifstr(i) $(ProviderHandle) == ""
goto FIN_NWWS_Return
Endif
Endif
SetRegValue $(ProviderHandle) {"Class",$(NoTitle),$(!REG_VT_DWORD),"3"}
SetRegValue $(ProviderHandle) {"Name",$(NoTitle),$(!REG_VT_SZ),"Netware Services"}
SetRegValue $(ProviderHandle) {"ProviderPath",$(NoTitle),$(!REG_VT_SZ),"NETWARE.DLL"}
SetRegValue $(ProviderHandle) {"DeviceName",$(NoTitle),$(!REG_VT_SZ),"\Device\NetWareWorkstation"}
CloseRegKey $(ProviderHandle)
FIN_NWWS_Return = +
Return
[FinishInstalling-IPXSPXII]
read-syms GeneralConstants
read-syms IpxSpxIIConstants
set ParmKey = $($1)
set LinkageKey = $($2)
; set Parameters
SetRegValue $(ParmKey) {$(FrameTypeName),$(NoTitle),$(!REG_VT_SZ),$(FrameType)}
SetRegValue $(ParmKey) {$(CardTypeName),$(NoTitle),$(!REG_VT_SZ),$(CardName)}
SetRegValue $(ParmKey) {$(CardInstance),$(NoTitle),$(!REG_VT_DWORD),$(CardInstanceNum)}
SetRegValue $(ParmKey) {"ConnectTimeout",$(NoTitle),$(!REG_VT_DWORD),0}
SetRegValue $(ParmKey) {"RetryCount",$(NoTitle),$(!REG_VT_DWORD),10}
SetRegValue $(ParmKey) {"RetryDelayDelta",$(NoTitle),$(!REG_VT_DWORD),5}
SetRegValue $(ParmKey) {"RetryDelayTimeout",$(NoTitle),$(!REG_VT_DWORD),0}
SetRegValue $(ParmKey) {"SessionCount",$(NoTitle),$(!REG_VT_DWORD),16}
SetRegValue $(ParmKey) {"WatchdogTimeout",$(NoTitle),$(!REG_VT_DWORD),0x3c}
SetRegValue $(ParmKey) {"WindowSize",$(NoTitle),$(!REG_VT_DWORD),8}
; set Linkage
SetRegValue $(LinkageKey) {$(BindValueName),$(NoTitle),$(!REG_VT_SZ),"\DEVICE\IPXSPXII"}
; Check for the pre-alpha Ipx service key if it exists delete it. We are now
; using the key IpxSpxII
;
set PreAlphaIpxName = "Ipx"
set PreAlphaIpxService = $(!NTN_ServiceBase)"\"$(PreAlphaIpxName)
OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaIpxService) $(MAXIMUM_ALLOWED) KeyIpx
Ifstr(i) $(KeyIpx) != ""
CloseRegKey $(KeyIpx)
OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices
Ifstr(i) $(KeyServices) == ""
Debug-Output "OEMNPRNW.INF: Delete Ipx, Can't open "$(!NTN_ServiceBase)
Else
DeleteRegTree $(KeyServices) $(PreAlphaIpxName)
FlushRegKey $(KeyServices)
CloseRegKey $(KeyServices)
Endif
Endif
Return
[FinishInstalling-LSL]
Return
[FinishInstalling-RESMGR]
Return
[FinishInstalling-ODILOAD]
Set KeyLinkage = $($2)
SetRegValue $(KeyLinkage) {"OtherDependencies",$(NoTitle),$(!REG_VT_MULTI_SZ),{"+ODI"}}
Return
[FinishInstalling-MUP]
Return
[FinishInstalling-TDI]
Return
[FinishRemoving-NWFS]
Debug-Output "FinishRemoving-NWFS"
Return
[FinishRemoving-IPXSPXII]
Debug-Output "FinishRemoving-IPXSPXII"
Return
[FinishRemoving-LSL]
Debug-Output "FinishRemoving-LSL"
Return
[FinishRemoving-RESMGR]
Debug-Output "FinishRemoving-RESMGR"
Return
[FinishRemoving-ODILOAD]
Debug-Output "FinishRemoving-ODILOAD"
Return
[FinishRemoving-MUP]
Debug-Output "FinishRemoving-Mup"
Return
[FinishRemoving-TDI]
Debug-Output "FinishRemoving-TDI"
Return
;***************************************************************
; INSTALL SECTIONS
;***************************************************************
[Install-Option]
set STF_VITAL = ""
Debug-Output "OEMNPRNW.INF: Install-Option: AddCopy = "$(AddCopy)
Debug-Output "OEMNPRNW.INF: Install-Option: DoCopy = "$(DoCopy)
Ifstr(i) $(AddCopy) == "YES"
;
; Add the files to the copy list
;
AddSectionFilesToCopyList Files-Netware $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
AddSectionFilesToCopyList Files-Lan $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
AddSectionFilesToCopyList Files-System32 $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Inf-Extra $(SrcDir) $(!STF_WINDOWSSYSPATH)
Ifint $(DoCopyMup) == 1
AddSectionFilesToCopyList Files-Mup $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
Endif
Endif
Ifstr(i) $(DoCopy) == "YES"
;
; Copy files in the copy list
;
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Endif
Exit
[Install-Netware-Dir]
CreateDir $(!STF_WINDOWSSYSPATH)\Netware
Exit
[Install-Update]
set STF_VITAL = ""
set STF_OVERWRITE = "VERIFYSOURCEOLDER"
Debug-Output "OEMNPRNW.INF: Install-Update: AddCopy = "$(AddCopy)
Debug-Output "OEMNPRNW.INF: Install-Update: DoCopy = "$(DoCOpy)
AddSectionFilesToCopyList Files-Netware $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
AddSectionFilesToCopyList Files-Lan $(SrcDir) $(!STF_WINDOWSSYSPATH)\netware
AddSectionFilesToCopyList Files-System32 $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Inf-Extra $(SrcDir) $(!STF_WINDOWSSYSPATH)
AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
set !STF_NCPA_FLUSH_COPYLIST = TRUE
CopyFilesInCopyList
Exit
[Install-CheckFileExists]
Debug-Output "FiletoCheck = "$(FileToCheck)
LibraryProcedure STATUS,$(!LIBHANDLE), CheckFileExistance $(FileToCheck)
Debug-Output "CheckFileExists STATUS = "$(STATUS)
exit
[Source Media Descriptions]
1 = "NetWare for Windows NT Setup Disk" , TAGFILE = nwfs.sys
2 = "NetWare for Windows NT Setup Disk" , TAGFILE = nwfs.sys
3 = "NetWare for Windows NT Setup Disk" , TAGFILE = nwfs.sys
99 = "LMHOST disk", TAGFILE = lmhosts
[ProductType]
STF_PRODUCT = Winnt
STF_PLATFORM = I386
[Files-Inf]
3, oemsetup.inf, SIZE=10000, RENAME=$(!UG_Filename)
[Files-Inf-Extra]
3, oemnadne.inf, SIZE=10000
3, oemnadnx.inf, SIZE=10000
3, oemnadna.inf, SIZE=10000
3, oemnadnb.inf, SIZE=10000
3, oemnadnc.inf, SIZE=10000
3, oemnadnt.inf, SIZE=10000
3, oemnadod.inf, SIZE=10000
3, oemnadnf.inf, SIZE=10000
[Files-Mup]
3, mup.sys, SIZE=30000
[Files-Netware]
3, resmgr.sys, SIZE=80000
3, nwfs.sys, SIZE=140000
3, ipxspxii.sys, SIZE=90000
3, odiload.sys, SIZE=60000
3, lsl.sys, SIZE=60000
3, ethertsm.ntm, SIZE=10000
3, tokentsm.ntm, SIZE=10000
3, ndis.sys, SIZE=60000
3, odinsup.sys, SIZE=70000
[Files-Lan]
3, ne1000.lan, SIZE=10000
3, ne2000.lan, SIZE=10000
3, ne2.lan, SIZE=10000
3, ne2_32.lan, SIZE=10000
3, 3c503.lan, SIZE=10000
3, 3c507.lan, SIZE=10000
3, 3c509.lan, SIZE=10000
3, token.lan, SIZE=10000
3, ntr2000.lan, SIZE=10000
[Files-System32]
3, netware.dll, SIZE=120000
3, nwv1_0.dll, SIZE=20000
3, nwspool.dll, SIZE=70000
3, nwmsg.dll, SIZE=20000
3, nwsetup.dll, SIZE=20000
3, novell.cpl, SIZE=20000